package com.ecommerce.product.converter;

import com.ecommerce.product.domain.Product;
import com.ecommerce.product.domain.ProductDocument;
import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 此类作为{@link ProductConverterMapper} 类中，mapstruct做对象转换时使用的专用转换器。
 */
@Component
public class ProductJsonConverter {
    /**
     * 将json字符串转换为 {@link ProductDocument.Spec}类型的对象List。
     * {@link ProductConverterMapper#toProductDocumentBad(Product)}方法的相关逻辑会使用到这个转换方法。
     */
    public List<ProductDocument.Spec> toSpecList(String json) {
        if (StringUtils.isBlank(json)) {
            return new ArrayList<>();
        }

        return JSON.parseArray(json, ProductDocument.Spec.class);
    }
}
